package err

import (
	"fmt"
	"sync"
)

var Map sync.Map

func CheckDBErr(e error) {
	if e != nil {
		fmt.Println("Create Connection ERR::", e)
	}
}

func Err(e error) {
	if e != nil {
		fmt.Println("ERR::", e)
	}
}

func CheckErrPing(name string, e error) {
	if e != nil {
		AddErrNumber(name)
		//失败请在这里执行任务
		fmt.Println(name, "PING ERR::", e)
	} else {
		//成功在这里执行任务
		DeleteErrNumber(name)
		fmt.Println(name, "PING Mysql SUCCESS")
	}
}

func AddErrNumber(name string) int {
	i, o := Map.Load(name)
	if !o {
		Map.Store(name, 1)
		return 1
	} else {
		i2 := i.(int)
		i3 := i2 + 1
		Map.Store(name, i3)
		return i3
	}
}

func DeleteErrNumber(name string) {
	i, o := Map.Load(name)
	if !o {
		Map.Store(name, 0)
	} else {
		i2 := i.(int)
		if i2 == 0 {
			return
		}
		i3 := i2 - 1
		Map.Store(name, i3)
	}
}

func GetErrNumber(name string) int {
	i, o := Map.Load(name)
	if !o {
		return 0
	} else {
		return i.(int)
	}
}
